package com.qqt.csr.order.service.event;

import com.qqt.csr.order.enums.WorkOrderEventEnum;
import lombok.*;
import lombok.experimental.Accessors;

import java.io.Serial;
import java.io.Serializable;
import java.util.List;

/**
 * @Author: yang hao
 * @Date: 2024/12/14 8:57
 * @Description: 动态事件源数据
 **/
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class DynamicEventSource implements Serializable {
    @Serial
    private static final long serialVersionUID = 6198981265339070217L;
    /**
     * 事件类型
     */
    private WorkOrderEventEnum event;

    /**
     * 扩展信息
     */
    private String ext;

    /**
     * 工单id
     */
    private Long orderId;

    /**
     * 处理人名称
     * 变更后处理人名称 非处理人变更/分配事件 可为空
     */
    private String processor;

    /**
     * 分配原因 非变更事件 可为空
     */
    private String reasonForAssignment;

    /**
     * 变更字段 非变更事件 可为空
     */
    private List<ChangeField> changeFields;

    @Getter
    @Setter
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    @Accessors(chain = true)
    public static class ChangeField implements Serializable {
        @Serial
        private static final long serialVersionUID = -6805467256725771000L;
        /**
         * 变更字段名
         */
        private String field;

        /**
         * 变更前值
         */
        private String oldValue;

        /**
         * 变更后值
         */
        private String newValue;
    }

}
